/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import generica.Generica;
import java.io.Serializable;
import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "tramitacao")
@SequenceGenerator(name = "tramitacao_seq", sequenceName = "id_Tramitacao", allocationSize = 1)

public class Tramitacao implements Generica {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tramitacao_seq")
    @Column(name = "id_Tramitacao")
    private int id_Tramitacao;
    
    //Processo o qual foi tramitado
    @OneToOne
    @JoinColumn(name = "processo")
    private Processo processo;

    // setor de onde foi tramitado
    @ManyToOne
    @JoinColumn(name = "Setor")
    private Setor setor;

//    @OneToOne
//    @JoinColumn(name = "situacao")
//    private Arquivar situacao;

    //data que foi encaminhado o processo
    @Temporal(TemporalType.DATE)
    @Column(name = "dataEnca")
    private Calendar dataEnca;

    //data que a tramitação foi recebida pelo setor
    @Temporal(TemporalType.DATE)
    @Column(name = "datarecb")
    private Calendar datarecb;

    //para onde vai a tramitação
    @OneToOne
    @JoinColumn(name = "setorReceb")
    private Setor setorReceb;

    //verifica se a tramitação foi recebida pelo outro setor
    @Column(name = "recebido")
    private boolean recebido;


    public int getId_Tramitacao() {
        return id_Tramitacao;
    }

    public void setId_Tramitacao(int id_Tramitacao) {
        this.id_Tramitacao = id_Tramitacao;
    }

    public Processo getProcesso() {
        return processo;
    }

    public void setProcesso(Processo processo) {
        this.processo = processo;
    }

    public Setor getSetor() {
        return setor;
    }

    public void setSetor(Setor setor) {
        this.setor = setor;
    }

    public Calendar getDataEnca() {
        return dataEnca;
    }

    public void setDataEnca(Calendar dataEnca) {
        this.dataEnca = dataEnca;
    }

    public Calendar getDatarecb() {
        return datarecb;
    }

    public void setDatarecb(Calendar datarecb) {
        this.datarecb = datarecb;
    }

//    public Arquivar getSituacao() {
//        return situacao;
//    }
//
//    public void setSituacao(Arquivar situacao) {
//        this.situacao = situacao;

    public Setor getSetorReceb() {
        return setorReceb;
    }

    public void setSetorReceb(Setor setorReceb) {
        this.setorReceb = setorReceb;
    }

    public boolean isRecebido() {
        return recebido;
    }

    public void setRecebido(boolean recebido) {
        this.recebido = recebido;
    }

//    }
    @Override
    public Serializable getIdentificador() {
        return this.id_Tramitacao;
    }

}
